package com.ruifu.act.service;

import com.fhzncloud.cloud.common.core.util.PageR;
import com.ruifu.act.vo.AuditRecordVO;
import com.ruifu.common.vo.actanddoc.ActivitiVO;
import com.ruifu.common.vo.actanddoc.Flag;
import com.ruifu.common.vo.actanddoc.ProccessTaskVO;
import com.ruifu.common.vo.actanddoc.ProcessParams;

import java.util.List;

/**
 * ClassName: ProcessActService <br/>
 * Description: <br/>
 * date: 2020-5-7-0007 16:55<br/>
 *
 * @author liun<br />
 * @since JDK 1.8
 */
public interface ProcessActService {
    /**
     * 提交(启动实例)
     *
     * @param processParams
     * @param tenantId
     */
    Flag submit(ProcessParams processParams, Integer tenantId);

    /**
     * 待审核
     *
     * @param userId   用户id
     * @param tenantId
     */
    PageR<List<ActivitiVO>> iReview(Integer userId, Integer page, Integer size, Integer tenantId);

    /**
     * 已审核
     *
     * @param tenantId
     * @param userId
     * @return
     */
    PageR<List<ActivitiVO>> queryDoneTasks(Integer userId, Integer page, Integer size, Integer tenantId);

    /**
     * 通过/驳回
     *
     * @param processParams
     */
    Flag pass(ProcessParams processParams);

    /**
     * 获取下一节点名称
     *
     * @param id   任务id
     * @param flag
     * @return
     */
    List<String> nextTaskName(String id, String flag);

    /**
     * 获取当前正在执行节点的j节点信息
     *
     * @param businessKey 业务对象传过来的唯一流程标识
     * @return
     */
    ProccessTaskVO getNowTaskNode(String businessKey);

    /**
     * 查看审核记录
     *
     * @param processInstanceId
     * @return
     */
    List<AuditRecordVO> AuditRecordList(String processInstanceId);
}
